#include "../../lv_examples.h"
#if LV_USE_LABEL && LV_BUILD_EXAMPLES

/**
 * Show customizing the circular scrolling animation of a label with `LV_LABEL_LONG_SCROLL_CIRCULAR`
 * long mode.
 */
void lv_example_label_5(void)
{   
    // 声明了一个静态的 lv_anim_t 类型的变量，用于存储动画模板
    static lv_anim_t animation_template;
    // 声明了一个静态的 lv_style_t 类型的变量，用于存储标签样式
    static lv_style_t label_style;

    // 初始化动画模板
    lv_anim_init(&animation_template);
    // 设置动画持续时间为 500 毫秒,在该函数中未起作用,因为滚动的是标签
    //lv_anim_set_time(&animation_template, 500); 

    // 设置动画模板的参数,第二个参数设置了动画开始时候延时了___ms才开始跑动
    lv_anim_set_delay(&animation_template, 0);           /*Wait 1 second to start the first scroll*/
    // 设置动画模板的参数,第二个参数设置了一个循环结束CD___ms，进入下一个循环
    lv_anim_set_repeat_delay(&animation_template,0);    /*Repeat the scroll 3 seconds after the label scrolls back to the initial position*/

    /*Initialize the label style with the animation template*/
    // 初始化标签样式
    lv_style_init(&label_style);
    // 设置动画模板,将动画模板应用到标签样式中
    lv_style_set_anim(&label_style, &animation_template);

    // 创建一个标签对象
    lv_obj_t * label1 = lv_label_create(lv_scr_act());
    // 设置标签的长文本模式为循环滚动
    lv_label_set_long_mode(label1, LV_LABEL_LONG_SCROLL_CIRCULAR);      /*Circular scroll*/
    // 设置标签的宽度
    lv_obj_set_width(label1, 150);
    // 设置标签的文本
    lv_label_set_text(label1, "It is a circularly scrolling text. ");
    // 设置标签的滚动速度为 100 毫秒，数值越大滚动越快，未知原因
    lv_obj_set_style_anim_speed(label1, 100, 0);
    // 设置标签的位置
    lv_obj_align(label1, LV_ALIGN_CENTER, 0, 20);
    // 将标签样式应用到标签对象中
    lv_obj_add_style(label1, &label_style, LV_STATE_DEFAULT);           /*Add the style to the label*/
}

#endif
